Hardware Transactional Memory Support for Lightweight Dynamic Language Evolution
نویسندگان
چکیده
Lightweight dynamic language runtimes have become popular in part because they simply integrate with a wide range of native code libraries and embedding applications. However, further development of these runtimes in the areas of concurrency, efficiency and safety is impeded by the desire to maintain their native code interfaces, even at a source level. Native extension modules’ lack of thread safety is a significant barrier to dynamic languages’ effective deployment on current and future multicore and multiprocessor systems. We propose the use of hardware transactional memory (HTM) to aid runtimes in evolving more capable and robust execution models while maintaining native code compatibility. To explore these ideas, we constructed a full-system simulation infrastructure consisting of an HTM implementation, modified Linux kernel and Python interpreter. Python includes thread constructs, but its primary implementation is not architected to support their parallel execution.With small changes, a runtime can be made HTM-aware to enable parallel execution of Python code and extension modules. We exploit the semantics of Python execution to evaluate individual bytecodes atomically by default, using nested transactions to emulate programmerspecified locking constructs where possible in existing threaded code. We eliminate common transactional conflicts and defer I/O within transactions to make parallel Python execution both possible and efficient. Transactions also provide safety for foreign function invocations. We characterize several small Python applications executing on our infrastructure.
منابع مشابه
From Lightweight Hardware Transactional Memory to Lightweight Lock Elision
AMD’s Advanced Synchronization Facility (ASF) has been evaluated in earlier work in the context of hardware and hybrid transactional memory, software transactional memory, and lock-free programming. In this work, we describe an extension to ASF for applying it in the area of lock elision (LE), which is now a well established concept in academia, but has not found its way into mainstream micro-p...
متن کاملDynamic Separation for Transactional Memory
Implementations of language constructs over transactional memory have typically provided unexpected semantics, required the re-compilation of non-transacted code, or assumed new hardware. We introduce an alternative approach founded on a contract between the programmer and the language implementation in which strong semantics are provided to programs that are “correctly synchronized” in their u...
متن کاملTransactional Runtime Extensions for Dynamic Language Performance
We propose exposing best-effort atomic execution, as provided by a simple hardware transactional memory (HTM), in a managed runtime’s bytecode interface. Dynamic language implementations built on such a runtime can generate more efficient, code, using speculation to eliminate the overhead and obstructions to optimization incurred by code needed to preserve rarely used language semantics. In thi...
متن کاملBrief Announcement: RaceTM – Detecting Data Races Using Transactional Memory
Widespread emergence of multicore processors will spur development of parallel applications, exposing programmers to more hardware concurrency. Dependable multithreaded software will have to rely on the ability to dynamically detect data races, which are non-deterministic and notoriously hard to reproduce symptoms of synchronization bugs. In this paper, we propose RaceTM, a novel approach that ...
متن کامل— Syllabus — Software Transactional Memory
“Transactional memory” means that, instead of using explicit locks to protect from data races (like the Java synchronized construct), a programmer could declare a block of code atomic and rely on the underlying software and hardware system to ensure that code within the block executes as if atomic. The transactional memory system might use any of several concurrency control protocols, with some...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006